import { createApp } from 'vue'; // vue依赖
import App from './App.vue';// vue根组件
import './style.css';// 全局默认样式
import router from '../src/router/index.js';// vue-router依赖
import ElementPlus from 'element-plus'// element-plus依赖
import * as ElementPlusIconsVue from '@element-plus/icons-vue';// element-plus图标
import 'element-plus/dist/index.css'// element-plus样式
import store from './store/index.js';// vuex实例
import { ElMessage } from 'element-plus';// 信息提示组件
import panelHead from './components/panelHead.vue';// 全局面板组件

// 刷新后的动态路由添加
const localData=localStorage.getItem('pz_v3pz');

if(localData){
  store.commit('dynamicMenu',JSON.parse(localData).menu.routerList);
  store.state.menu.routerList.forEach(item=>{
    router.addRoute('main',item);
  });
}


router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('pz_token');
  if (!token && to.path != '/login') {
    ElMessage.error('请先登录!');
    next({ name: 'login' });
  }
  else if(token && to.path == '/login') {
    ElMessage.success('您已登录!');
  }
  next();
});

const app = createApp(App);// vue实例

for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)// 注册element-plus图标
}

app.use(ElementPlus);// 使用element-plus

app.use(router);// 使用路由

app.use(store);// 使用vuex

app.component('panelHead', panelHead);// 注册全局组件

app.mount('#app');// 挂载点
